Las tablas IP es una herramienta de Linux para filtrar paquetes de red y controlar su tráfico. A grandes rasgos es un Firewall.

Viene preinstalado en la mayoría de distros, anteriormente era conocido como ipchains e ipfwadm.

Utiliza reglas para determinar qué paquetes pueden transitar por la red.

En este ejercicio:

ejecutado en ubuntu


Índice

  1. [[#Bloqueo de salida a internet]]
  2. [[#Bloqueo específico]]
  3. [[#Regla para SSH]]
  4. [[#Persistencia]]

Bloqueo de salida a internet

Primero haremos un ping para demostrar conectividad:

Ahora insertaremos una regla:
sudo iptables -A OUTPUT -j DROP
donde:
-A especifica que le daremos una regla
-j especifica al objetivo de la regla lo que debe hacer si coincide.

Y veremos la regla creada con el comando:
sudo iptables -L -v -n
donde:
-L indica que debe listar
-v verboso
-n listar de manera numérica

Tiramos un ping (no hay conexión):

Finalmente eliminamos dicha regla con
sudo iptables -D OUTPUT -j DROP
donde:
-D indica la acción de eliminar una regla
y lanzamos un último ping para corroborar conexión.

Ahora volvemos a tener.


Bloqueo específico

Primero obtendremos la dirección IP del dominio a través de un ping a www.desafiolatam.com (172.67.175.45)
y creamos una regla:
sudo iptables -A OUTPUT -d 172.67.175.45 -j DROP
donde:
-d Indica destino

Arrojamos dos ping:

  1. ping www.desafiolatam.com

  2. ping www.google.com

Eliminamos y listamos la regla:


Regla para SSH

El proceso es similar. El comando que utilizamos es:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
donde:
-p indica el protocolo sobre el cual actuar
--dport indica el puerto de destino

Osea estamos agregando una regla (-A) de entrada (INPUT) al protocolo tcp (-p tcp) en el puerto 22 (--dport 22) y la acción que debe realizar (-j) es la de aceptar (ACCEPT)


Persistencia

Finalmente estas reglas no se guardan automáticamente (a menos que lo configuremos), pero la forma más sencilla es simplemente realizar:
sudo iptables-save > /etc/iptables/rules.v4

Lo que le indica a iptables que debe guardar las reglas hacia el archivo rules.v4
Si el archivo no existe, aplicamos touch rules.v4 y chmod 644 para permisos.

Si nos queremos ir un poco más extensos podemos generar una automatización a través de un script, cronjob y servicios